//配置axios的全局基本路径，访问后端接口使用8080
axios.defaults.baseURL='http://localhost:8080/'
//全局属性配置，在任意组件内可以使用this.$http获取axios对象
Vue.prototype.$http = axios

//======================axios的前置拦截器====================//
//每次路由请求之前：将token设置到请求头 -  token携带到后端
axios.interceptors.request.use(res=>{
    let token = localStorage.getItem("token"); // 获取token
    if(token){
        //将token放入请求头
        res.headers["token"] = token;
    }
    return res; // 请求头中携带token传到后端
},error => {
    Promise.reject(error)
})
//======================axios的前置拦截器====================//



//======================axios的后置拦截器====================//
//处理后端响应的数据 - 跳转页面
axios.interceptors.response.use(res=>{
    let data = res.data;
    // 如果data里有msg为noLogin,说明没有登陆
    if(data.msg==="noLogin") {
        // 通过路由跳转到login页面,因为不是通过路由,所以直接跳到页面
        this.$router.push({ path: '/login.html' });
    }
    return res;
},error => {
    Promise.reject(error);
})
//======================axios的后置拦截器====================//


//======================axios的前端拦截器/静态资源拦截器====================//
//自己写js代码
let url = location.href;
//url.indexOf("login.html")==-1   ->  这个url字符串中没有login.html  ->  访问的不是登录页面
if(url.indexOf("login.html")==-1
    && url.indexOf("register.html")==-1
    && url.indexOf("callback.html")==-1
    && url.indexOf("binder.html")==-1
    && url.indexOf("index.html")==-1){
    //验证你登录没有
    let logininfo = localStorage.getItem("logininfo");
    if(!logininfo){
        //如果logininfo没有值 - 跳转到登录页面
        location.href="login.html";
    }
}
//======================axios的前端拦截器/静态资源拦截器====================//




//假如url=callback.html?code=1&state=1
//将url中？后面的参数 转成 成一个json对象
function parseUrlParams2Obj(url){
    // 先声明一个空字符串
    var jsonObj = {};
    // 根据"?"拆分成两部分,截取下标加1的部分,也就是第二部分 code=1&state=1
    var urlTem = url.substring(url.indexOf("?") + 1); //code=1&state=1
    // 通过&分割,结果是数组
    var strArr = urlTem.split("&"); //[code=1,state=1]
    // 循环遍历数组
    for(var i = 0; i<strArr.length;i++){
        // data是strArr遍历出来的元素 code=1 state=1
        var data = strArr[i];
        // jsonObj code=1 把1赋值给code
        jsonObj[data.split("=")[0]] = data.split("=")[1];
    }
    return jsonObj;
}
